#pragma once

#include <functional>
#include <memory>


namespace rr {
namespace nio {

class Buffer;
class TcpConnection;
using TcpConnectionVar = std::shared_ptr<TcpConnection>;

using VoidCallback             = std::function<void()>;
using CloseCompleteCallback    = std::function<void()>;
using TimerCallback            = std::function<void()>;
using ConnectionCallback       = std::function<void(TcpConnectionVar)>;
using ConCloseCallback         = std::function<void(TcpConnectionVar)>;
using MessageCallback          = std::function<void(TcpConnectionVar, Buffer *)>;


} //namespace 
} //namespace 